www.gusucode.com > 6KBBS ASP版 V7.1 > 6KBBS ASP版 V7.1\code\bbs\SaveUpFile.asp

    <!--#include file="conn.asp"--><!--#include file="inc/fun.asp"--><!--#include file="inc/upfile_class.asp"-->
<%
dim Cssstyleid,allthebbs
allthebbs=application(prefix&"allthebbs")
'application(prefix&"allthebbs")=""
Cssstyleid=request.cookies(prefix&"1")("styleid")

%>
<link rel="stylesheet" type="text/css" href="skin/<%=Cssstyleid%>/global.css">
<body leftmargin="0" topmargin="2">
<script>function putinstrHTML(str){
var documentedit;
var browserthis=parent.HtmlGetBrowser();
		if (browserthis== 'IE') {
			documentedit = parent.document.frames("EditForm").document;
		} else {
			documentedit = parent.document.getElementById('EditForm').contentDocument;
		}

documentedit.body.innerHTML+=str;
}
function putinstrUBB(str){
	var documentedit=parent.document.getElementById('CodeForm');
	documentedit.value+=str;
}
</script>
<%
dim upfile,formPath,ServerPath,FSPath,formName,FileName,oFile,upfilecount,fileExtNoDot,fileExt
dim lguserid,uploadsize,uploadnum,uploadingnum,maxid,autotable,i,action,uploadtype,savepath,lgname,mymark

action=request("action")
if checknum(application(prefix&"canupload"))<>1 then response.end
lguserid=checknum(session(prefix&"lguserid"))
if isnull(lguserid) or lguserid="" then response.end

	if action="headpic" then uploadtype="gif|jpg|bmp":savepath="images/headpic/upload"
	if action="" then uploadtype=lcase(application(prefix&"uploadtype")):savepath="upload"

	uploadsize=checknum(application(prefix&"uploadsize"))
	uploadnum=checknum(application(prefix&"uploadnum"))
	autotable=checknum(application(prefix&"autotable"))

	uploadingnum=checknum(session(prefix&"uploadingnum"))
	lgname=replace(request.cookies(prefix)("lgname"),"'","")

	if uploadingnum>uploadnum-1 and action="" then
	response.write "一次只能上传 <b>"&uploadingnum&"</b> 个文件!"
	response.end
	end if

	mymark=conn.execute("select top 1 mark from [user] where userid="&lguserid&"")("mark")
	
	if mymark<10 then
	response.write"一次上传需要10点积分,你只有"&mymark&"点积分。"
	response.end
	end if


set upfile=new upfile_class ''建立上传对象
upfile.AllowExt=replace(uploadtype,"|",";")
upfile.GetData (uploadsize*1000)   '取得上传数据,限制最大上传10M



%>

<%
if upfile.isErr then  '如果出错
    select case upfile.isErr
	case 1
 	response.write "请先选择你要上传的文件 [ <a href=# onclick=history.go(-1)>重新上传</a> ]"
	response.end

	case 2
 	response.write "文件大小超过了限制 "&uploadsize&" Kb [ <a href=# onclick=history.go(-1)>重新上传</a> ]"
	response.end
	
	end select
else

	FSPath=Server.mappath(savepath)&"\"	'取得当前文件在服务器路径

	for each formName in upfile.file '列出所有上传了的文件
	   set oFile=upfile.file(formName)
		FileName=oFile.filename
		fileExtNoDot=upfile.GetFileExt(FileName)
		fileExt="."&fileExtNoDot
	    Filename=upfile.GetNewFileName&"-"&lguserid&fileExt
	    if action="headpic" then Filename=lguserid&fileExt
	   	upfile.SaveToFile formName,FSPath&FileName   ''保存文件 也可以使用AutoSave来保存,参数一样,但是会自动建立新的文件名
	   
	   '论坛处理
	   if upfile.isErr=0 then
			if action="" then
				conn.execute("insert into upload(bbsid,filename,filetype,uploadtime,name,totable) values(0,'"&filename&"','"&fileExt&"',now()+"&timeset&"/24,'"&lgname&"',0)")
				conn.execute("update [user] set mark=mark-10 where userid="&lguserid&"")
				response.write "<script>var pstr='[upload="&fileExtNoDot&"]"&FileName&"[/upload]';putinstrHTML(pstr);putinstrUBB(pstr);</script>"
			elseif action="headpic" then
				response.write "<script>parent.form.mypic.value='"&savepath&"/"&FileName&"'</script>"
			end if
		end if
	   
	 %>
<%
    if upfile.iserr then 
			Response.Write upfile.errmessage
	else
			call UpEnd()
	end if

	 set oFile=nothing
	next

end if
set upfile=nothing  '删除此对象

Sub UpEnd()
	if action="" then
		session(prefix&"uploadingnum")=uploadingnum+1
		response.write "<b>"&session(prefix&"uploadingnum")&"</b> 文件上传成功,请copy下边的文件连接,以备后用!>><a href=upload.asp>继续上传</a>"
		response.end
	elseif action="headpic" then
		response.write"上传成功,<a href=upload.asp?action=headpic>重新上传</a>。"
	end if
End Sub

%>